home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Collections: Franz PD
/
Franz PD Disk #301 (1994)(Rhein-Sieg-Soft).zip
/
Franz PD Disk #301 (1994)(Rhein-Sieg-Soft).adf
/
DoBB
/
DoBB.S
/
DoBB.S
Wrap
Text File
|
1994-01-21
|
13KB
|
507 lines
* DoBB V1.10 installiert einen BootBlock auf Diskette
* oder schreibt einen BootBlock in eine Datei !
* mDoBBm V1.10 (r) 29. Dez, 1993 von Volker Stepprath
* Tegeler Str. 7
* 40789 Monheim
* Deutschland
* Editor: AZ Editor v1.50 (c) « Software Winery »
* Assembler: GenAm Macro Assembler V2.11D (c) 85/8 HiSoft
* Variablen definieren *
_SYSBase equ 4
_LVOOpen equ -30
_LVOClose equ -36
_LVORead equ -42
_LVOWrite equ -48
_LVOOutput equ -60
_LVOAllocMem equ -198
_LVOFreeMem equ -210
_LVOFindTask equ -294
_LVOOldOpenLibrary equ -408
_LVOCloseLibrary equ -414
_LVOOpenDevice equ -444
_LVOCloseDevice equ -450
_LVODoIO equ -456
_NULLBYTE move.b #0,-1(a0,d0.l)
* Parameter retten *
move.l a0,d6
move.l d0,d7
* Hauptprogramm *
_MAIN bsr _OPENALL
move.l d6,a0
move.l d7,d0
cmp.l #7,d0
ble _FEHLER
cmp.b #58,3(a0)
bne _FEHLER
move.b 2(a0),d4
sub.b #48,d4
cmp.b #0,d4
blt _FEHLER
cmp.b #3,d4
bgt _FEHLER
bsr _OPENDEV
cmp.l #0,d0
bne _DEVFEHLER
bsr _ALLOCMEM
bsr _BOOTBLOCK
bsr _FREEMEM
bsr _CLOSEDEV
bra _CLOSELIB
* dos.library öffnen & Akt. Fenster *
_OPENALL move.l _SYSBase,a6
lea Dosname(pc),a1
jsr _LVOOldOpenLibrary(a6)
move.l d0,_DOSBase
move.l _DOSBase(pc),a6
jsr _LVOOutput(a6)
move.l d0,Handle
rts
* trackdisk.device bereitsetellen *
_OPENDEV move.l _SYSBase,a6
sub.l a1,a1
jsr _LVOFindTask(a6)
move.l d0,DiskReply+$10
lea DiskIO(pc),a1
move.l #DiskReply,14(a1)
clr.l d1
move.l d4,d0
lea Device(pc),a0
jsr _LVOOpenDevice(a6)
rts
* Speicher reservieren *
_ALLOCMEM move.l _SYSBase,a6
move.l #1024,d0
move.l #$10003,d1
jsr _LVOAllocMem(a6)
move.l d0,DiskBuff
rts
* Speicher freigeben *
_FREEMEM move.l _SYSBase,a6
move.l #1024,d0
move.l DiskBuff(pc),a1
jsr _LVOFreeMem(a6)
rts
* Parameter auswerten und ausführen *
_BOOTBLOCK move.l d6,a0
add.b #3,(a0)
cmp.b #45,5(a0) * Korekter Parameter -
bne _USAGE * ÄhÄh !
clr.l d0
move.b 6(a0),d0
bclr #5,d0 * in Großbuchstabe wandeln
cmp.b #82,d0 * Parameter R ?
beq _BOOTODAT * Jo!
cmp.b #87,d0 * Parameter W ?
beq _DATOBOOT * Jear!
cmp.b #78,d0 * Parameter N ?
beq _NOBOOT * Klaro!
cmp.b #68,d0 * Parameter D ?
beq _DOSBOOT * Nlogen!
cmp.b #70,d0 * Parameter F ?
beq _FORMATBOOT * Jeil!
cmp.b #79,d0 * Parameter O ?
beq _OS3BOOT * Escht!
cmp.b #81,d0 * Parameter Q ?
beq _QUARTEXBOOT * Issohr!
bra _USAGE * Ungültige Parameter !
* BootBlock in Datei schreiben *
_BOOTODAT bsr _READBOOT
bsr _GETNAME
move.l _DOSBase(pc),a6
move.l #1006,d2
jsr _LVOOpen(a6)
move.l d0,Handledat
cmp.l #0,Handledat
beq _FILEFEHLER
move.l Handledat(pc),d1
move.l DiskBuff(pc),d2
move.l #1024,d3
jsr _LVOWrite(a6)
move.l Handledat(pc),d1
jsr _LVOClose(a6)
rts
* BootBlock formatieren & in Datei schreiben *
_FORMATBOOT bsr _READBOOT
bsr _GETNAME
move.l _DOSBase(pc),a6
move.l #1006,d2
jsr _LVOOpen(a6)
move.l d0,Handledat
cmp.l #0,Handledat
beq _FILEFEHLER
move.l DiskBuff(pc),a1
move.l #1024,d1
clr.l d3
clr.l d4
_FORMAT addq #1,d4
tst.b (a1)+
beq _LOOP
move.l d4,d3
_LOOP dbra d1,_FORMAT
move.l Handledat(pc),d1
move.l DiskBuff(pc),d2
jsr _LVOWrite(a6)
move.l Handledat(pc),d1
jsr _LVOClose(a6)
rts
* BootBlock einlesen *
_READBOOT move.l _SYSBase,a6
lea DiskIO(pc),a1
move.w #2,28(a1)
move.l DiskBuff(pc),40(a1)
move.l #1024,36(a1)
move.l #0,44(a1)
jsr _LVODoIO(a6)
rts
* Datei in BootBlock installieren *
_DATOBOOT bsr _GETNAME
move.l _DOSBase(pc),a6
move.l #1005,d2
jsr _LVOOpen(a6)
move.l d0,Handledat
cmp.l #0,Handledat
beq _FILEFEHLER
move.l Handledat(pc),d1
move.l DiskBuff(pc),d2
move.l #1024,d3
jsr _LVORead(a6)
move.l Handledat(pc),d1
jsr _LVOClose(a6)
move.l DiskBuff(pc),a4
move.l #255,d0
bsr _DOIO
rts
* Dateinamen ermitteln *
_GETNAME move.l d6,a0
add.l #7,a0
move.l a0,d1
rts
* OS 3.0 Boot *
_OS3BOOT lea OS3Boot(pc),a4
moveq #23,d0
bsr _DOIO
rts
* Utility Boot V2.0 *
_QUARTEXBOOT lea QBoot(pc),a4
move.l #255,d0
bsr _DOIO
rts
* Standart DOS BootBlock *
_DOSBOOT lea DOSBoot(pc),a4
moveq #12,d0
bsr _DOIO
rts
* Nicht bootfähiger BootBlock *
_NOBOOT lea NoBoot(pc),a4
moveq #0,d0
bsr _DOIO
rts
* Devicekommando ausführen *
_DOIO move.l DiskBuff(pc),a5
MAKEBOOT:
move.l (a4)+,(a5)+
dbra d0,MAKEBOOT
move.l _SYSBase,a6
lea DiskIO(pc),a1
move.w #3,28(a1)
move.l DiskBuff(pc),40(a1)
move.l #0,44(a1)
move.l #1024,36(a1)
jsr _LVODoIO(a6)
move.w #4,28(a1)
jsr _LVODoIO(a6)
rts
* Keine gültigen Parameter *
_USAGE move.l _DOSBase(pc),a6
move.l #Usage,d2
moveq #82,d3
move.l Handle(pc),d1
jsr _LVOWrite(a6)
rts
* Fehler in Parameterübergabe *
_FEHLER bsr _USAGE
bra _CLOSELIB
* Device nicht vorhanden *
_DEVFEHLER move.l _DOSBase(pc),a6
move.l Handle(pc),d1
move.l #Deverr,d2
moveq #22,d3
jsr _LVOWrite(a6)
bra _CLOSELIB
* Datei konnte nicht geöffnet werden *
_FILEFEHLER move.l _DOSBase(pc),a6
move.l Handle(pc),d1
move.l #Filerr,d2
moveq #18,d3
jsr _LVOWrite(a6)
rts
* Device schließen *
_CLOSEDEV move.l _SYSBase,a6
lea DiskIO(pc),a1
move.w #9,28(a1)
move.l #0,36(a1)
jsr _LVODoIO(a6)
lea DiskIO(pc),a1
jsr _LVOCloseDevice(a6)
rts
* dos.library schließen *
_CLOSELIB move.l _SYSBase,a6
move.l _DOSBase(pc),a1
jsr _LVOCloseLibrary(a6)
rts
* Speicherreservierung *
_DOSBase dc.l 0
DiskBuff dc.l 0
Handle dc.l 0
Handledat dc.l 0
Formatlen dc.l 0
DiskReply ds.l 8
DiskIO ds.l 20
Dosname dc.b 'dos.library',0
Device dc.b 'trackdisk.device',0
Usage dc.b 'Usage: ',$9b,'33;40mDoBB',$9b,'0m [DFn:] [-F{file}] [-R{file}]'
dc.b ' [-W{file}] [-D] [-N] [-O] [-Q]',10
Deverr dc.b 'Drive not available !',10
Filerr dc.b 'Can`t open file !',10
DOSBoot dc.l $444F5300,$C0200F19,$370,$43FA0018,$4EAEFFA0,$4A80670A,$20402068
dc.l $167000,$4E7570FF,$60FA646F,$732E6C69,$62726172,$79000000
NoBoot dc.l $444F5300
OS3Boot dc.l $444F5303,$E33D0E70,$370,$43FA003E,$70254EAE,$FDD84A80
dc.l $670C2240,$8E90006,$224EAE,$FE6243FA,$184EAE,$FFA04A80
dc.l $670A2040,$20680016,$70004E75,$70FF4E75,$646F732E,$6C696272
dc.l $61727900,$65787061,$6E73696F,$6E2E6C69,$62726172,$79000000
QBoot dc.l $444F5300,$1C2238A9,$370,$48E7FF7E,$70026100,$22E7009
dc.l $42A90024,$6100023A,$41FA03CC,$22690014,$20A9003C,$22690038
dc.l $2F0943FA,$2B8303C,$4E20222E,$3E0481,$80004,$6B043340
dc.l $1E4AAE,$4E6704,$3340000A,$43FA02B6,$207A0394,$41E80034
dc.l $4A986604,$33400008,$4A986604,$33400012,$4A986604,$3340001C
dc.l $4AAE002A,$660C4AAE,$2E6606,$4AAE022A,$671A43FA,$3237020
dc.l $1340001A,$12C012BC,$4145FA,$2D424FC,$56495249,$43F90007
dc.l $80002449,$4299B3FC,$7F000,$66F62C57,$33FC01A0,$DFF096
dc.l $43FA01CE,$2D490032,$41F90007,$1000214A,$87001,$223C0000
dc.l $300243C,$100,$4EAEFE7A,$43F90007,$11004EAE,$FF3A43F9
dc.l $71100,$237C0007,$10000004,$70014EAE,$FEAA4BFA,$1C87800
dc.l $7632181D,$672E610E,$6830000,$1806106,$4BED001F,$60E843F9
dc.l $71100,$20032204,$4EAEFF10,$43F90007,$1100204D,$701F4EAE
dc.l $FFC44E75,$33FC8380,$DFF096,$283C000F,$F0002C78,$45384
dc.l $670000B8,$43FA025A,$C110041,$661243FA,$1663011,$2400F00
dc.l $6400100,$32805284,$4BF900BF,$E0010815,$66700,$8E102D
dc.l $C00422D,$C004600,$B03C00A0,$670000D4,$B03C00A2,$660A203C
dc.l $80000,$600000C8,$B03C00A4,$66164BF9,$FC00D0,$42AE0026
dc.l $4EAEFFE2,$41F80002,$4E704ED0,$B03C00A6,$6738B03C,$A86606
dc.l $4BFAFFEA,$60DEB03C,$AA6756,$B03C00AC,$66040855,$1B03C
dc.l $AE6612,$47FA020C,$32130841,$53681,$33C100DF,$F1DC6000
dc.l $FF52207A,$1F241E8,$3470FF,$20C020C0,$20806112,$43FA01E6
dc.l $4EAEFFA0,$20402068,$167000,$4E75205F,$588F4CDF,$7EFF2F08
dc.l $4E7561F2,$700541F9,$50000,$610C7003,$61087004,$61046000
dc.l $FDCC41F9,$30000,$23480028,$237C0000,$4000024,$42A9002C
dc.l $3340001C,$4EAEFE38,$4E75202E,$3E204E,$4BF900FC,$2800C65
dc.l $21FC66FA,$99CC4DF8,$6762640,$43F900DF,$F096203C,$7FFF7FFF
dc.l $22C022C0,$4EE8FFE2,$1002200,$1020001,$920020,$9400D8
dc.l $8E3000,$9030FF,$E00007,$E28870,$E40007,$E688A0
dc.l $1860AAA,$1840EEE,$1820777,$1800002,$FFFFFFFE,$223C3C3C
dc.l $3C3C3C20,$5554494C,$49545920,$424F4F54,$2056322E,$30203E3E
dc.l $3E3E3E3E,$35464153,$544D454D,$3A4F4646,$20202020,$20203120
dc.l $4D454720,$43484950,$3A4F4646,$2C202044,$46313A4F,$46462020
dc.l $20444632,$3A4F4646,$20202044,$46333A4F,$46462020,$43463120
dc.l $46415354,$4D454D20,$4F464620,$46322043,$4849502F,$46415354
dc.l $204F4646,$4C463320,$414C4C20,$4D454D20,$4F4E2020,$4634204B
dc.l $494C4C20,$44524956,$45532120,$55463520,$48415244,$20524553
dc.l $45542020,$46362049,$4E535441,$4C4C2042,$4F4F5420,$5E463720
dc.l $544F4747,$4C45204C,$45442020,$46382054,$4F472050,$414C2F4E
dc.l $54534320,$6C20204E,$4F205649,$52555320,$48415320,$4245454E
dc.l $20444554,$45435445,$44212020,$75424F4F,$54204259,$20204E2E
dc.l $4F2E4D2E,$412E4420,$204F4620,$51554152,$54455821,$0
dc.l $0,$646F732E,$6C696272,$61727900